Hamming Codes - How Data Corrects Itself